#ifndef __TASK_HPP__
#define __TASK_HPP__
#include <functional>
#include <iostream>
#include <string>
using namespace std;
using func_t = function<int(int,int)>; 

class Task
{
public:
    Task(int a = 0, int b = 0) : _a(a), _b(b), _result(0)
    {
    }

    string debug()
    {
        return "Task is: " + to_string(_a) + "+" + to_string(_b) + "= ?";
    }

    string resultToString()
    {
        return "Task is handled: " + to_string(_a) + "+" + to_string(_b) + "= " + to_string(_result);
    }

    void excute()
    {
        _result = _a + _b;
    }

    void operator()()
    {
        excute();
    }

private:
    int _a;
    int _b;
    int _result;
};

#endif